
#ifndef _MEMBER_BPROGRAM_H_
#define _MEMBER_BPROGRAM_H_

#include <BMap>
#include <BOpenGL>
#include <BProgram>
#include <BUniform>
#include "member_BShader.h"
#include "member_BUniform.h"

#define program_member(program)	((member_BProgram*)((BProgram*)program)->_ptr)

namespace BWE
{
	class member_BProgram
	{
	public:
		member_BProgram(BProgram* boss);
		~member_BProgram();

		bool use();
		bool unuse();

		BProgram*				program;
		bool					dirty;
		BList<BShaderHolder>	shaders;
		GLuint					object;
		BArray<BUniformHolder>	uniforms;
	};
}

#endif
